愿望的隐秘复杂性

The Hidden Complexity of Wishes

我希望以我选择的地点生活在一个身体健康、无伤无损、看起来正常的「当前身体版本」中;这个身体包含我当前的精神状态;在我可获得的医疗技术条件下,它从所有伤害中恢复的速度要比平均水平快 3 个标准差;并且,它将免受任何会造成残疾、疼痛或功能下降的疾病、伤害或病症的侵害;无论是哪一种感觉、器官或身体功能,都不会因此连续超过 10 天、或在一年内累计超过 15 天受到影响……

The Open-Source Wish Project, Wish For Immortality 1.1

精灵分三类:你可以安全地对其说「我希望你去做我应该希望你做的事」的精灵;没有任何愿望是安全的精灵;以及不太强大或不太聪明的精灵

假设你年迈的母亲被困在一栋着火的建筑里,而你碰巧坐在轮椅上;你无法自己冲进去。你可以大喊:「把我妈妈从那栋楼里救出来!」但不会有人听见。

幸运的是,你口袋里有一个结果泵(Outcome Pump)。这个方便的小装置会挤压时间的流动,把概率灌注到某些结果里,从另一些结果里抽走。

结果泵不是有感知的。它包含一台微型时间机器,除非某个被指定的结果发生,否则它会不断重置时间。比如说,如果你把结果泵的传感器接到一枚硬币上,并指定时间机器要一直重置,直到它看见硬币翻到正面,然后你真的抛了硬币,那么你会看见硬币翻到正面。(物理学家说:任何发生「重置」的未来都是不一致的,因此它们从一开始就不会发生——所以你其实并没有杀死任何版本的自己。)

无论你能设法把什么命题输入结果泵,它都会以某种方式发生——但不会以违反物理定律的方式发生。如果你尝试输入一个过于不可能的命题,时间机器会在那个结果发生之前就遭遇一次自发的机械故障。

你还可以用更定量的方式重定向概率流:用「未来函数」来缩放不同结果对应的时间重置概率。如果硬币翻到正面时的时间重置概率是 99%,翻到反面时是 1%,那么概率会从 1:1 变成 99:1,偏向反面。如果你有一台会吐出钱的神秘机器,而你想最大化它吐出的钱数,你就会使用一种随吐钱数增加而递减的重置概率。比如吐出 10 美元的重置概率可能是 99.999999%,吐出 100 美元的重置概率可能是 99.99999%。这样一来,即使你不知道可达到的最佳上限是多少,你也能得到一个在未来函数意义上倾向于尽可能高的结果。

于是你绝望地把结果泵从口袋里拽出来——记住,你母亲还困在那栋着火的建筑里——并试图描述你的目标:把你母亲弄出那栋楼!

用户界面不接受英语输入。记住,结果泵不是有感知的。但它确实配备了近距离的 3D 扫描器,以及用于模式匹配的内置工具。于是你举起一张你母亲头肩部的照片;用照片做匹配;再用对象连续性来选中你母亲的整个身体(不只是头肩);并用你母亲与建筑中心的距离来定义未来函数。她离建筑中心越远,时间机器的重置概率就越低。你出于侥幸又喊了一句「把我母亲从楼里救出来!」然后按下 Enter。

有那么一瞬间,似乎什么也没发生。你环顾四周,等着消防车开过来、救援人员到达——或者哪怕只是一个强壮、跑得快的人把你母亲拖出大楼——

轰!伴随着震耳欲聋的巨响,建筑下方的燃气主管爆炸了。结构在仿佛慢动作中四分五裂,你瞥见母亲破碎的身体被高高抛向空中,飞快地掠过,迅速拉大了它与这座建筑先前中心点之间的距离。

结果泵侧面有一个紧急后悔按钮(Emergency Regret Button)。所有未来函数都会自动把「按下后悔按钮」赋予一个巨大的负值——其时间重置概率几乎为 1——因此结果泵极不可能去做任何会把用户气到按下后悔按钮的事。你甚至想不起来自己曾按过它。但你刚刚开始伸手去够后悔按钮(现在按又有什么用呢?),一根燃烧着的木梁就从天而降,把你砸成了肉饼。

这并不真的是你想要的,但在被定义的未来函数里得分极高……

结果泵属于第二类精灵。没有任何愿望是安全的。

如果有人请你把他可怜、年迈的母亲从一栋着火的建筑里救出来,你也许会帮忙,也许会假装没听见。但你甚至不会想到要把整栋楼炸掉。「把我母亲从楼里救出来」听上去比它实际更安全,是因为你根本不会去考虑那些你会赋予极大负值的计划。

再想想群体选择主义的悲剧:一些早期生物学家断言,对低亚种群规模的群体选择会导致个体在繁殖上自我克制;然而,当研究者在实验室里真正施加群体选择时,出现的却是同类相食,尤其是对未成熟雌性的同类相食。回过头看,这一点显而易见:在「小亚种群规模」的强选择压力下,食人者会在繁殖上胜过那些自愿放弃繁殖机会的个体。但吃小女孩是一种如此「不够美观」的解法,以至于 Wynne-Edwards、Allee、Brereton 和其他群体选择主义者根本没想到。他们只看见了他们自己会采用的解法。

假设你试图给未来函数打补丁,指定结果泵不得炸掉建筑:在那些建筑材料被分散到过大体积的结果里,时间重置概率将接近 1。

于是你母亲从二楼窗户摔了出来,折断了脖子。结果泵选择了另一条时间路径,仍然让你母亲离开了建筑,但依然不是你想要的;而且这同样不是任何人类救援者会想到的解法。

要是 Open-Source Wish Project 开发了一条「把母亲从着火建筑里救出来的愿望」就好了:

我希望把我的母亲(定义为与我共享一半基因并生下我的那位女性)移动到我当前附近最近、正在着火的那栋建筑的边界之外;但不能通过炸掉建筑;也不能通过让墙体坍塌从而使建筑不再有边界;也不能通过等到建筑烧完之后再让救援人员把尸体抬出来……

这些特殊情形、这些看似无穷无尽所需的补丁,应该会让你想起《Artificial Addition》的寓言——通过不断显式添加更多断言来编程算术专家系统,例如「十五加十五等于三十,但十五加十六等于三十一」。

要如何排除「建筑爆炸把你母亲抛上天」这种结果?你向前看,预见到你母亲会死去,而你不想要这个后果,于是你试图禁止导致它发生的前置事件。

你的大脑并没有被硬编码进一条具体的、预先录制好的陈述,说「把一栋着火且包含我母亲的建筑炸掉是个坏主意」。可你却正试图在结果泵的未来函数里预先录下这条精确而具体的陈述。于是愿望开始膨胀,变成一张巨大的查找表,记录你对时间中每一条可能路径的判断。

你没能许下你真正想要的愿望。你真正想要的是你母亲继续活着,但你许下的愿望却是让她远离建筑中心。

但你想要的还不止这些。如果你母亲被救出了建筑,却被烧得惨不忍睹,那么在你的偏好排序里,这个结果会比她安然无恙地被救出来更差。所以你不仅重视你母亲的生命,也重视她的健康。

而你重视的不只是她的身体健康,还有她的精神状态。以一种会创伤她的方式获救——比如一个巨大的紫色怪物从天而降把她抓走——不如消防员赶到现场,带她从一条没有火焰的路线撤离。(没错,我们理应坚持物理定律,但也许足够强大的结果泵能让外星人恰好在那一刻出现在附近。)当然,相比被活活烧死,你还是会更愿意她被怪物救走。

如果突然打开一个虫洞,把她吞进一座荒岛呢?比她死掉好;但比不上她活着、健康、没有创伤,并且持续与你和她社会网络中的其他成员保持联系。

如果为了救你母亲的命,代价是家里的狗为了去叫消防员而跑出去、却被车撞死,这样可以吗?显然可以,但在其他条件相同的情况下,最好还是避免杀死那条狗。你不愿用另一条人命来交换她的命,但一个被定罪的杀人犯的命呢?如果杀人犯是出于善意、在救她的过程中死去,这会有影响吗?两个杀人犯呢?如果你母亲活下来的代价,是摧毁现存的每一份副本(包括记忆在内)的 Bach 的《G 小调小赋格曲》(Little Fugue in G Minor),这值得吗?如果她本来就有绝症,18 个月后无论如何都会死呢?

如果你母亲的脚被一根燃烧的横梁压碎,把她剩下的部分救出来还值得吗?如果她的头被砸碎,只剩下身体呢?如果她的身体被砸碎,只剩下头呢?如果外面有一支冷冻保存团队等着,准备把头冷冻起来呢?一颗冷冻的头算是一个人吗?Terry Schiavo 算是一个人吗?一只黑猩猩值多少?

你的大脑并非无限复杂;存在一个有限的 Kolmogorov 复杂度 / 信息长度,足以描述你会做出的所有判断。但仅仅因为这种复杂度是有限的,并不意味着它很小。我们重视许多东西,而且它们并不能被化约为重视幸福重视繁殖适应度

没有任何一种安全的愿望,会小于一整套人类道德。时间中可能的路径实在太多。你无法想象所有通向你交给精灵的目的地的道路。「最大化你母亲与建筑中心的距离」可以通过引爆核武器更有效地做到。或者,在更强大的精灵之下,把她的身体抛出太阳系。或者,在更聪明的精灵之下,做出某种你我都想不到的事——就像黑猩猩想不到引爆核武器一样。你无法可视化所有时间路径,就像你无法靠为每一个可能的棋盘局面硬编码一步棋来编程一个会下棋的机器。

而现实生活远比国际象棋复杂得多。你无法提前预测:在评判精灵走过的时间路径时,你的哪些价值会被调用。尤其当你许下的愿望比「把母亲从着火大楼里救出来」更长期、更广泛时。

我担心 Open-Source Wish Project 是徒劳的,除非它被用作一个示范:示范该如何去思考精灵问题。唯一安全的精灵,是与您共享全部判断标准的精灵;到了那一步,你只要说「我希望你去做我应该希望你做的事」就行了。那不过是运行了精灵的「应该」函数。

事实上,甚至不必说任何话。要成为一个安全的愿望实现者,精灵必须共享促使你许下愿望的同一套价值。否则,精灵可能不会选择一条能导向你所设想目的地的时间路径,或者它可能无法排除那些可怕的副作用——以至于你一开始就不会考虑那条计划。愿望是渗漏的概括,它们源自那套庞大但有限的结构:你的整套道德;只有把整套结构都纳入进来,你才能堵上所有漏洞。

有了安全的精灵,许愿就是多余的。直接运行精灵即可。